<?php
namespace app\admin\controller;
use think\Controller;
use think\Request;
use think\Session;
use think\Loader;
use think\Cookie;
use think\Config;
use think\Image;
use think\Db;
use aliyun\oss\ossValidate;
use aliyun\oss\ossBase;
use aliyun\oss\OssClient;
use PHPMailer\PHPMailer;
// use Sendsms;
// use aliyun\src\OSS\OssClient;
// use OSS\Core\OssException;
// use OSS\OssClient;
use app\appapi\WeShare;
use usb\utoClass;
/**
 * 
 */
class Common extends Controller
{
	
	//前置方法列表，继承自Controller
    protected $beforeActionList = [
        //'checksession', //在任何操作执行前执行checksession方法
        //'islogin' =>  ['except'=>'login'],   //在除login之外的其他方法执行前先执行islogin方法
        //'removesession'  =>  ['only'=>'logout'],   //在logout执行前先执行removesession
		'before_index'  =>  ['only'=>'index'],
		'before_add'  =>  ['only'=>'add'],
		'before_edit'  =>  ['only'=>'edit'],
    ];
	var $model;
	var $ctrl;
	var $alt;
	var $REQUEST;
	function _initialize()
	{
		judgeFilterSql();
		$this->REQUEST = Request::instance();
		// $result = $this->listMultipartUploads();
		// print_r($result);exit;
		// $uploadtask = $result->getuploads();
		// if(is_array($uploadtask) && !empty($uploadtask)){
		// 	foreach($uploadtask as $list){
		// 		$this->completeMultipartUpload('',$list->getkey(),$list->getuploadId());
		// 	}
		// }
		$this->model = $model = request()->module();
		$this->ctrl = $ctrl = request()->controller();
		$this->alt = $alt = request()->action();
		$vm = model('ManageMenu')->getManageMenu();
		$this->assign('menu_list',$vm);
	}

	public function _empty($name)
    {
        echo $name.'这个操作不存在';
    }
	public function before_index($value='')
	{
		
	}
	public function index()
	{
		return view($this->alt);
	}
	public function add()
	{
		return view($this->alt);
	}
	public function edit()
	{
		return view($this->alt);
	}

	public function left(){
		return view('left/index');
	}
	public function top(){
		return view('top/index');
	}
	public function logout(){
		return view('login/index');
	}

	//上传文件至本地服务器

	public function uploadFileLocal($file,$fileName='',$path='other/')
	{

		//$file = json_decode($file, true);
		$arr['error'] = 10002; 
        $arr['msg'] = "操作失败";
		if(empty($file) || $file=='' || !$file) 
		return json(['code'=>0,'网络异常']);		
		// 获取图片    
		list($type, $data) = explode(',', $file);    				
		// 判断类型    
		if(strstr($type,'image/jpeg')!=''){    
			$ext = '.jpg';    
		}elseif(strstr($type,'image/gif')!=''){    
			$ext = '.gif';    
		}elseif(strstr($type,'image/png')!=''){    
			$ext = '.png';    
		}    	
		if (!is_dir($path)){  
			//第三个参数是“true”表示能创建多级目录，iconv防止中文目录乱码
			mkdir(iconv("UTF-8", "GBK", $path),0777,true);
		}	
		// 生成的文件名   
		$fileName = $fileName?$fileName:time();
		$paths = $path.$fileName.$ext;   
		// 生成文件      
		header('content-type:application/json;charset=utf-8');  
		if(file_put_contents($paths, base64_decode($data), false))       
		return json(['code'=>1,'msg'=>'上传成功','data'=>dirname($_SERVER['SCRIPT_NAME']).'/'.$paths]); 
		return json(['code'=>0,'网络异常']);
	}

	//发送邮箱验证码
	public function sendEmail($username='1030604454@qq.com',$Password='jjatsufwvpncbfga',$toemail='1030604454@qq.com',$Subject='这是一个测试邮件',$Body='www.oopp.top"点击跳转验证!',$ReplyTo='1030604454@qq.com',$From='1030604454@qq.com',$StmHost='smtp.qq.com')
	{
			$toemail = '1030604454@qq.com';//定义收件人的邮箱
 
			$mail = new PHPMailer();
 
			$mail->isSMTP();// 使用SMTP服务
			$mail->CharSet = "utf8";// 编码格式为utf8，不设置编码的话，中文会出现乱码
			$mail->Host = $StmHost;// 发送方的SMTP服务器地址
			$mail->SMTPAuth = true;// 是否使用身份验证
			$mail->Username = $username;// 发送方的163邮箱用户名，就是你申请163的SMTP服务使用的163邮箱</span><span style="color:#333333;">
			$mail->Password = $Password;// 发送方的邮箱密码，注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码！</span><span style="color:#333333;">
			$mail->SMTPSecure = "ssl";// 使用ssl协议方式</span><span style="color:#333333;">
			$mail->Port = 465;// 163邮箱的ssl协议方式端口号是465/994
 
			$mail->setFrom($toemail,'Mailer');// 设置发件人信息，如邮件格式说明中的发件人，这里会显示为Mailer(xxxx@163.com），Mailer是当做名字显示
			$mail->addAddress($toemail,'Wang');// 设置收件人信息，如邮件格式说明中的收件人，这里会显示为Liang(yyyy@163.com)
			$mail->addReplyTo($ReplyTo,"Reply");// 设置回复人信息，指的是收件人收到邮件后，如果要回复，回复邮件将发送到的邮箱地址
			//$mail->addCC("xxx@163.com");// 设置邮件抄送人，可以只写地址，上述的设置也可以只写地址(这个人也能收到邮件)
			//$mail->addBCC("xxx@163.com");// 设置秘密抄送人(这个人也能收到邮件)
			//$mail->addAttachment("bug0.jpg");// 添加附件
 
 
			$mail->Subject = $Subject;// 邮件标题
			$mail->Body = $Body;// 邮件正文
			//$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容，如果不支持Html方式，就会用到这个，基本无用
 
			if(!$mail->send()){// 发送邮件
			    echo "Message could not be sent.";
			    echo "Mailer Error: ".$mail->ErrorInfo;// 输出错误信息
			}else{
			    echo '发送成功';
			}
	}

	//发送短信
	public function sendMessage($phone)
	{
		
		$sms = new Sendsms();		
		$sms->sendSms($phone);//单发短信
		$sms->sendBatchSms($phone);//群发短信
		$sms->querySendDetails($phone);//短信查询
	}
}
